Providing a collaborative status message in an instant messaging system

ABSTRACT

A method, system and computer program product for providing a collaborative status message in an instant messaging system. Instant Messaging (“IM”) users that belong to a group are identified. A collaborative status message (e.g., “In Meeting with User 2 and User 3”) is generated that specifies the IM users of the group (e.g., User 2 and User 3) that are participating in an event (e.g., meeting) with an IM user upon the event occurring. The collaborative status message is broadcasted to other IM users. In this manner, more detailed information can be provided to other IM users regarding the status of the IM user in question.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is a continuation application of pending U.S.patent application Ser. No. 13/413,756, which was filed on Mar. 7, 2012,which is assigned to the assignee of the present invention. The presentapplication claims priority benefits to U.S. patent application Ser. No.13/413,756.

TECHNICAL FIELD

The present invention relates to instant messaging, and moreparticularly to providing a collaborative status message in an instantmessaging system.

BACKGROUND

Instant messaging is a form of real-time communication between two ormore computer users. Typically, the real-time communication is in theform of text that is typed into a computer by one user, and which isthen received by another user during an Instant Messaging (“IM”)session. The other user is then able to type a response during the sameIM session, thus making instant messaging more seamless andinstantaneous than e-mail and other types of computer-basedcommunication.

Instant messaging has become very popular within the business communityas it allows users to communicate more freely and openly, while alsoincreasing productivity. However, instant messaging systems are limitedin their functionality. By way of example, most instant messagingsystems only allow the user to set an online status or away message sopeers are notified when the user is available, busy, in a meeting, awayfrom the computer, etc.

However, such status messages do not impart information directed to acollaborative status. For example, if two individuals have a statusmessage of “in a meeting,” such a status message does not impartinformation as to whether these individuals are in the same meeting.

By having a collaborative status message, more information can beprovided to IM users, such as for example, which individuals are in ameeting.

BRIEF SUMMARY

In one embodiment of the present invention, a method for providing acollaborative status message in an instant messaging system comprisesidentifying instant messaging users that belong to a group. The methodfurther comprises generating a collaborative status message specifyingone or more instant messaging users of the group participating in anevent with an instant messaging user upon the event occurring. Inaddition, the method comprises broadcasting, by a processor, thecollaborative status message to other instant messaging users.

Other forms of the embodiment of the method described above are in asystem and in a computer program product.

The foregoing has outlined rather generally the features and technicaladvantages of one or more embodiments of the present invention in orderthat the detailed description of the present invention that follows maybe better understood. Additional features and advantages of the presentinvention will be described hereinafter which may form the subject ofthe claims of the present invention.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

A better understanding of the present invention can be obtained when thefollowing detailed description is considered in conjunction with thefollowing drawings, in which:

FIG. 1 illustrates an instant messaging system configured in accordancewith an embodiment of the present invention;

FIG. 2 illustrates a hardware configuration of a client system inaccordance with an embodiment of the present invention;

FIG. 3 is a flowchart of a method for providing a collaborative statusmessage in an instant messaging system in accordance with an embodimentof the present invention;

FIG. 4 is a flowchart of an exemplary method for identifying instantmessaging users as belonging to a group in accordance with an embodimentof the present invention; and

FIG. 5 illustrates identifying instant messaging users listed in acontact list that are participating in an event via connected linesbetween them in accordance with an embodiment of the present invention.

DETAILED DESCRIPTION

The present invention comprises a method, system and computer programproduct for providing a collaborative status message in an instantmessaging system. In one embodiment of the present invention, InstantMessaging (“IM”) users that belong to a group are identified. Acollaborative status message (e.g., “In Meeting with User 2 and User 3”)is generated that specifies the IM users of the group (e.g., User 2 andUser 3) that are participating in an event (e.g., meeting) with an IMuser upon the event occurring. The collaborative status message isbroadcasted to other IM users. In this manner, more detailed informationcan be provided to other IM users regarding the status of the IM user inquestion.

In the following description, numerous specific details are set forth toprovide a thorough understanding of the present invention. However, itwill be apparent to those skilled in the art that the present inventionmay be practiced without such specific details. In other instances,well-known circuits have been shown in block diagram form in order notto obscure the present invention in unnecessary detail. For the mostpart, details considering timing considerations and the like have beenomitted inasmuch as such details are not necessary to obtain a completeunderstanding of the present invention and are within the skills ofpersons of ordinary skill in the relevant art.

Referring now to the Figures in detail, FIG. 1 illustrates an instantmessaging system 100 for practicing the principles of the presentinvention in accordance with an embodiment of the present invention.Instant messaging system 100 includes client systems 101A-101C(identified as “Client A,” “Client B,” and “Client C,” respectively, inFIG. 1) connected to a server 102 via a network 103. Clients 101A-101Cmay collectively or individually be referred to as clients 101 or client101, respectively. Client 101 may be any type of computing device (e.g.,portable computing unit, personal digital assistant (PDA), smartphone,laptop computer, mobile phone, navigation device, game console, desktopcomputer system, workstation, Internet appliance and the like)configured with the capability of connecting to network 103 andconsequently communicating with other clients 101 and server 102. Eachclient 101 is configured to send and receive text-based messages inreal-time during an instant messaging session as discussed furtherbelow. Any user of client 101 may be the creator or initiator of aninstant message (message in instant messaging) and any user of client101 may be a recipient of an instant message. A description of thehardware configuration of client 101 is provided below in connectionwith FIG. 2.

Network 103 may be, for example, a local area network, a wide areanetwork, a wireless wide area network, a circuit-switched telephonenetwork, a Global System for Mobile Communications (GSM) network,Wireless Application Protocol (WAP) network, a WiFi network, an IEEE802.11 standards network, various combinations thereof, etc. Othernetworks, whose descriptions are omitted here for brevity, may also beused in conjunction with system 100 of FIG. 1 without departing from thescope of the present invention.

In instant messaging system 100, clients 101A-101C include a softwareagent, referred to herein as an Instant Messaging (IM) client 104A-104C,respectively (identified as “IM Client A,” “IM Client B,” and “IM ClientC,” respectively, in FIG. 1). Instant messaging clients 104A-104C maycollectively or individually be referred to as instant messaging clients104 or instant messaging client 104, respectively. Furthermore, server102 includes a software agent, referred to herein as the InstantMessaging (IM) server 105. IM client 104 provides the functionality tosend and receive instant messages. As messages are received, IM client104 presents the messages to the user in a dialog window (or IM window).Additionally, IM client 104 may present to the user a buddy or contactlist, where the contact list includes a means for identifying thoseusers participating in an event (e.g., meeting) via connected lines asdiscussed further herein. Furthermore, IM client 104 provides thefunctionality for client 101 to connect to the IM server 105 whichprovides the functionality of distributing the instant messages to theIM clients 104 associated with each of the sharing users.

Clients 101A-101C may further include a software agent, referred toherein as a client calendar agent 106A-106C, respectively (identified as“Client Calendar Agent A,” “Client Calendar Agent B,” and “ClientCalendar Agent C,” respectively, in FIG. 1). Client calendar agents106A-106C may collectively or individually be referred to as clientcalendar agents 106 or client calendar agent 106, respectively.Furthermore, server 102 may include a software agent, referred to hereinas the calendar management agent 107. Calendar management agent 107interfaces with client calendar agent 106 to present meeting invitationsto clients 101. Client calendar agent 106 is configured to display thereceived meeting invitation as well as display calendar scheduleinformation on the client's 101 calendar user interface.

While FIG. 1 illustrates three clients 101A-101C and a single server102, instant messaging system 100 may include any number of clients 101and servers 102. The embodiments of instant messaging system 100 are notto be limited in scope to the depiction of FIG. 1.

Referring now to FIG. 2, FIG. 2 illustrates a hardware configuration ofclient 101 (FIG. 1) which is representative of a hardware environmentfor practicing the present invention. Referring to FIG. 2, client 101has a processor 201 coupled to various other components by system bus202. An operating system 203 runs on processor 201 and provides controland coordinates the functions of the various components of FIG. 2. Anapplication 204 in accordance with the principles of the presentinvention runs in conjunction with operating system 203 and providescalls to operating system 203 where the calls implement the variousfunctions or services to be performed by application 204. Application204 may include, for example, IM client 104 (FIG. 1), calendar agent 106(FIG. 1), a program for providing a collaborative status message asdiscussed further below in association with FIGS. 3-5.

Referring again to FIG. 2, read-only memory (“ROM”) 205 is coupled tosystem bus 202 and includes a basic input/output system (“BIOS”) thatcontrols certain basic functions of client 101. Random access memory(“RAM”) 206 and disk adapter 207 are also coupled to system bus 202. Itshould be noted that software components including operating system 203and application 204 may be loaded into RAM 206, which may be client's101 main memory for execution. Disk adapter 207 may be an integrateddrive electronics (“IDE”) adapter that communicates with a disk unit208, e.g., disk drive. It is noted that the program for providing acollaborative status message, as discussed further below in associationwith FIGS. 3-5, may reside in disk unit 208 or in application 204.

Client 101 may further include a communications adapter 209 coupled tobus 202. Communications adapter 209 interconnects bus 202 with anoutside network (network 103) thereby enabling client 101 to communicatewith other clients 101 and server 102.

I/O devices may also be connected to client 101 via a user interfaceadapter 210 and a display adapter 211. Keyboard 212, mouse 213 andspeaker 214 may all be interconnected to bus 202 through user interfaceadapter 210. A display monitor 215 may be connected to system bus 202 bydisplay adapter 211. In this manner, a user is capable of inputting toclient 101 through keyboard 212 or mouse 213 and receiving output fromclient 101 via display 215 or speaker 214.

As will be appreciated by one skilled in the art, aspects of the presentinvention may be embodied as a system, method or computer programproduct. Accordingly, aspects of the present invention may take the formof an entirely hardware embodiment, an entirely software embodiment(including firmware, resident software, micro-code, etc.) or anembodiment combining software and hardware aspects that may allgenerally be referred to herein as a “circuit,” ‘module” or “system.”Furthermore, aspects of the present invention may take the form of acomputer program product embodied in one or more computer readablemedium(s) having computer readable program code embodied thereon.

Any combination of one or more computer readable medium(s) may beutilized. The computer readable medium may be a computer readable signalmedium or a computer readable storage medium. A computer readablestorage medium may be, for example, but not limited to, an electronic,magnetic, optical, electromagnetic, infrared, or semiconductor system,apparatus, or device, or any suitable combination of the foregoing. Morespecific examples (a non-exhaustive list) of the computer readablestorage medium would include the following: an electrical connectionhaving one or more wires, a portable computer diskette, a hard disk, arandom access memory (RAM), a read-only memory (ROM), an erasableprogrammable read-only memory (EPROM or flash memory), a portablecompact disc read-only memory (CD-ROM), an optical storage device, amagnetic storage device, or any suitable combination of the foregoing.In the context of this document, a computer readable storage medium maybe any tangible medium that can contain, or store a program for use byor in connection with an instruction execution system, apparatus, ordevice.

A computer readable signal medium may include a propagated data signalwith computer readable program code embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer readable signal medium may be any computer readable medium thatis not a computer readable storage medium and that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus or device.

Program code embodied on a computer readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wireline, optical fiber cable, RF, etc., or any suitable combination ofthe foregoing.

Computer program code for carrying out operations for aspects of thepresent invention may be written in any combination of one or moreprogramming languages, including an object oriented programming languagesuch as Java, Smalltalk, C++ or the like and conventional proceduralprogramming languages, such as the C programming language or similarprogramming languages. The program code may execute entirely on theuser's computer, partly on the user's computer, as a stand-alonesoftware package, partly on the user's computer and partly on a remotecomputer or entirely on the remote computer or server. In the latterscenario, the remote computer may be connected to the user's computerthrough any type of network, including a local area network (LAN) or awide area network (WAN), or the connection may be made to an externalcomputer (for example, through the Internet using an Internet ServiceProvider).

Aspects of the present invention are described below with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems) and computer program products according to embodiments of thepresent invention. It will be understood that each block of theflowchart illustrations and/or block diagrams, and combinations ofblocks in the flowchart illustrations and/or block diagrams, can beimplemented by computer program instructions. These computer programinstructions may be provided to a processor of a general purposecomputer, special purpose computer, or other programmable dataprocessing apparatus to produce a machine, such that the instructions,which execute via the processor of the computer or other programmabledata processing apparatus, create means for implementing thefunction/acts specified in the flowchart and/or block diagram block orblocks.

These computer program instructions may also be stored in a computerreadable medium that can direct a computer, other programmable dataprocessing apparatus, or other devices to function in a particularmanner, such that the instructions stored in the computer readablemedium produce an article of manufacture including instructions whichimplement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer,other programmable data processing apparatus, or other devices to causea series of operational steps to be performed on the computer, otherprogrammable apparatus or other devices to produce a computerimplemented process such that the instructions which execute on thecomputer or other programmable apparatus provide processes forimplementing the function/acts specified in the flowchart and/or blockdiagram block or blocks.

As stated in the Background section, instant messaging systems arelimited in their functionality. By way of example, most instantmessaging systems only allow the user to set an online status or awaymessage so peers are notified when the user is available, busy, in ameeting, away from the computer, etc. However, such status messages donot impart information directed to a collaborative status. For example,if two individuals have a status message of “in a meeting,” such astatus message does not impart information as to whether theseindividuals are in the same meeting. By having a collaborative statusmessage, more information can be provided to IM users, such as forexample, which individuals are in a meeting.

The principles of the present invention provide a means for providing acollaborative status message in an instant messaging system as discussedfurther below in connection with FIGS. 3-5. FIG. 3 is a flowchart of amethod for providing a collaborative status message in an instantmessaging system. FIG. 4 is a flowchart of an exemplary method foridentifying instant messaging users as belonging to a group. FIG. 5illustrates identifying instant messaging users listed in a contact listthat are participating in an event (e.g., meeting) via connected linesbetween them.

FIG. 3 is a flowchart of a method 300 for providing a collaborativestatus message in instant messaging system 100 (FIG. 1) in accordancewith an embodiment of the present invention.

Referring to FIG. 3, in conjunction with FIGS. 1-2, in step 301, IMclient 104 identifies instant messaging users (e.g., users of clients101) that belong to a group. In one embodiment, such a group may bepredefined. For example, a user of client 101 may explicitly define theinstant messaging users (e.g., users of clients 101B, 101C) belonging toa group. In another embodiment, such a group may be generateddynamically, such as at the time of collaboration (e.g., instantmessaging users accepting a common meeting invitation, an activity eachinstant messaging user participates, etc.). For example, a group may begenerated dynamically based on organization charts, job rolls, etc. Inanother example, a group may be generated dynamically based on instantmessaging users who accepted a meeting invitation as discussed below inconnection with FIG. 4.

FIG. 4 is a flowchart of an exemplary method 400 for identifying instantmessaging users as belonging to a group based on those instant messagingusers who accepted a meeting invitation in accordance with an embodimentof the present invention.

Referring to FIG. 4, in step 401, calendar agent 106 of client 101(e.g., client 101A) generates a meeting invitation to be distributed toselected instant messaging users (e.g., instant messaging users ofclients 101B, 101C). In one embodiment, calendar agent 106 may send themeeting invitation to a server, such as server 102, that includescalendar management agent 107, which distributes the meeting invitationto the invited users (e.g., users of clients 101B, 101C).

In step 402, calendar agent 106 of client 101 receives acceptances tothe meeting invitation from one or more of the instant messaging usersthat received the meeting invitation.

In step 403, IM client 104 classifies the meeting organizer (i.e., theuser of client 101 that issued the meeting invitation) and the instantmessaging users that accepted the meeting invitation as belonging to agroup.

In some implementations, method 400 may include other and/or additionalsteps that, for clarity, are not depicted. Further, in someimplementations, method 400 may be executed in a different orderpresented and that the order presented in the discussion of FIG. 4 isillustrative. Additionally, in some implementations, certain steps inmethod 400 may be executed in a substantially simultaneous manner or maybe omitted.

Returning to FIG. 3, in conjunction with FIGS. 1-2, as discussed above,instant messaging users (e.g., users of clients 101A, 101B, 101C) areidentified as belonging to a group. In one embodiment, the collaborativestatus, as discussed further below, of the group may be in addition tothe individual user statuses for each instant messaging user in thegroup.

In step 302, a determination is made by IM client 104 as to whether anevent associated with a group has started. An event, as used herein,refers to the occurrence of an activity that involves the instantmessaging users of a group. For example, a meeting may be classified asan event, as the activity of a meeting involves a group of individuals(e.g., a group of instant messaging users).

If the event associated with a group has not yet started, then, IMclient 104 continues to determine whether an event associated with thegroup has stated in step 302.

If, however, an event associated with a group has started, then, in step303, IM client 104 generates a collaborative status message thatspecifies the instant messaging users of the group (e.g., users ofclients 101B, 101C) that are participating in the event (e.g., meeting)with the instant messaging user in question (e.g., user of client 101A)upon the event occurring. A collaborative status message, as usedherein, refers to a message that provides the status of instantmessaging users that are members of the group that involve an event(e.g., meeting). For example, suppose the instant messaging user ofclient 101A issued a meeting invitation (called “Big Meeting”) to theinstant messaging users (User 2, User 3) of clients 101B, 101C. Supposefurther that the instant messaging users of clients 101B, 101C acceptedthe meeting invitation. Upon the occurrence of the meeting (i.e., uponthe start of the meeting), a collaborative status message for theinstant messaging user of client 101A may be generated that indicatesthat the instant messaging user of client 101A is “In Big Meeting withUser 2 and User 3.” In this manner, more detailed information can beprovided to other IM users regarding the status of the instant messaginguser of client 101A. In one embodiment, such collaboration informationmay be made available only to a subset of available IM users (e.g., onlythose IM users who are members of the group attending the meeting).

In step 304, IM client 104 broadcasts the collaborative status messageto other IM users. For example, IM client 104 may send the collaborativestatus message to IM server 105, which distributes the collaborativestatus message to the IM clients 104 associated with each of the sharingusers (i.e., those IM users that are to be able to view thecollaborative status message). In one embodiment, IM client 104 thatbroadcasts the collaborative status message may inform IM server 105which instant messaging users are to receive the collaborative statusmessage. For example, the collaborative status message may be madeavailable only to a subset of available IM users (e.g., only those IMusers who are members of the group attending the meeting). In oneembodiment, the collaborative status message may be in addition to theindividual user statuses for each IM user in the group. In oneembodiment, the information in the collaborative status message (e.g.,“In Big Meeting with User 2 and User 3”) may be displayed on the userinterface of the IM users that received the collaborative statusmessage, such as by identifying IM users listed in a contact list thatare participating in an event (e.g., meeting) via connected linesbetween them as illustrated in FIG. 5.

FIG. 5 illustrates identifying instant messaging users listed in acontact list that are participating in an event (e.g., meeting) viaconnected lines between them in accordance with an embodiment of thepresent invention. Referring to FIG. 5, the individuals identified as“John Doe 1” and “John Doe 10” are connected by a line therebyindicating that such IM users are participating in an event (e.g.,meeting).

In some implementations, method 400 may include other and/or additionalsteps that, for clarity, are not depicted. Further, in someimplementations, method 400 may be executed in a different orderpresented and that the order presented in the discussion of FIG. 4 isillustrative. Additionally, in some implementations, certain steps inmethod 400 may be executed in a substantially simultaneous manner or maybe omitted.

The descriptions of the various embodiments of the present inventionhave been presented for purposes of illustration, but are not intendedto be exhaustive or limited to the embodiments disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of the describedembodiments. The terminology used herein was chosen to best explain theprinciples of the embodiments, the practical application or technicalimprovement over technologies found in the marketplace, or to enableothers of ordinary skill in the art to understand the embodimentsdisclosed herein.

1. A method for providing a collaborative status message in an instantmessaging system, the method comprising: identifying instant messagingusers that belong to a group; generating a collaborative status messagespecifying one or more instant messaging users of said groupparticipating in an event with an instant messaging user upon said eventoccurring; and broadcasting, by a processor, said collaborative statusmessage to other instant messaging users.
 2. The method as recited inclaim 1, wherein said collaborative status message is broadcasted to asubset of available instant messaging users.
 3. The method as recited inclaim 2, wherein said subset of available instant messaging users aresaid instant messaging users of said group.
 4. The method as recited inclaim 1, wherein said one or more instant messaging users of said groupparticipating in said event are identified as participating in saidevent via connected lines between said one or more instant messagingusers listed in a contact list that is displayed on a user interface ofsaid other instant messaging users.
 5. The method as recited in claim 1further comprising: generating a meeting invitation to be distributed toone or more instant messaging users; receiving acceptances to saidmeeting invitation from one or more of said one or more instantmessaging users; and classifying a meeting organizer and said one ormore of said one or more instant messaging users that accepted saidmeeting invitation as belonging to said group.
 6. The method as recitedin claim 1, wherein said event comprises a meeting.